﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;

using System.Collections;
using IT_Tracker.Properties;
using IT_Tracker.DADOS;
using IT_Tracker.ENTIDADES;
using System.Data.SqlClient;


//using Microsoft.Office.Interop.Excel;
//using NsExcel = Microsoft.Office.Interop.Excel;

namespace IT_Tracker
{
    public partial class ucEstOlos_TabAnalitico : UserControl
    {
        public ucEstOlos_TabAnalitico()
        {
            InitializeComponent();
        }

        private void ucEstOlos_TabAnalitico_Load(object sender, EventArgs e)
        {
            CboAddItens();
        }

        #region Declarações

        BDOlosPE insBDOlosPE = new BDOlosPE();

        //Datatable que armazenara os totais de tabulação
        DataTable dtTab = new DataTable();



        #endregion


        #region Formatações e Eventos

        #region Eventos

        private void cboTipoConsulta_SelectedIndexChanged(object sender, EventArgs e)
        {
            switch (cboTipoConsulta.Text)
            {
                case "Apenas Consulta":
                    DtpFormataConsulta();
                    break;

                case "Inclusão No Banco":
                    DtpFormataAddBanco();
                    break;


                default:
                    break;
            }
        }

        private void btnCboConsultaEsq_Click(object sender, EventArgs e)
        {
            if ((cboTipoConsulta.Items.Count - 1) > cboTipoConsulta.SelectedIndex)
            {
                cboTipoConsulta.SelectedIndex++;
            }
        }

        private void btnCboConsultaDir_Click(object sender, EventArgs e)
        {
            if ((cboTipoConsulta.SelectedIndex) >= 1)
            {
                cboTipoConsulta.SelectedIndex--;
            }
        }

        #endregion

        #region Formatação


        private void CboAddItens()
        {
            cboTipoConsulta.Items.Add("Apenas Consulta");
            cboTipoConsulta.Items.Add("Inclusão No Banco");
            cboTipoConsulta.SelectedIndex = 0;
        }

        private void DtpFormataConsulta()
        {
            //Incluindo a Formatação Custom no Dtp
            dtpDataInicial.Format = DateTimePickerFormat.Custom;
            dtpDataInicial.CustomFormat = "dd/MM/yyyy HH:mm";
            dtpDataFinal.Enabled = true;
            dtpDataFinal.Format = DateTimePickerFormat.Custom;
            dtpDataFinal.CustomFormat = "dd/MM/yyyy HH:mm";

            //Desativando/Ativando botões
            btnExportarExcel.Enabled = false;
            btnExportarSQL.Enabled = false;
            btnGerar.Enabled = true;
        }

        private void DtpFormataAddBanco()
        {
            //Incluindo a Formatação Custom no Dtp
            dtpDataInicial.Format = DateTimePickerFormat.Custom;
            dtpDataInicial.CustomFormat = "dd/MM/yyyy";
            dtpDataFinal.Enabled = false;


            //Desativando/Ativando botões
            btnExportarExcel.Enabled = false;
            btnExportarSQL.Enabled = false;
            btnGerar.Enabled = true;

        }

        private void formataGridView()
        {
            var gdv = dgPrevia;


            gdv.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.DisplayedCellsExceptHeaders;
            gdv.ColumnHeadersBorderStyle = DataGridViewHeaderBorderStyle.Single;

            //altera a cor das linhas alternadas no grid      
            //gdvTkt.RowsDefaultCellStyle.BackColor = Color.White;
            //gdvTkt.AlternatingRowsDefaultCellStyle.BackColor = Color.WhiteSmoke;            

            gdv.RowsDefaultCellStyle.SelectionBackColor = Color.LightSkyBlue;

            //altera o nome das colunas
            gdv.Columns[0].HeaderText = "ID";
            gdv.Columns[1].HeaderText = "Descrição";
            gdv.Columns[2].HeaderText = "Quantidade";

            gdv.Columns[0].Width = 50;
            gdv.Columns[1].Width = 300;
            gdv.Columns[2].Width = 100;

            gdv.RowHeadersVisible = false;


            //seleciona a linha inteira
            gdv.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
            //não permite seleção de multiplas linhas
            gdv.MultiSelect = false;
            // exibe nulos formatados
            gdv.DefaultCellStyle.NullValue = " - ";
            //Formatar dados de acordo com seus valores

            //somente leitura
            gdv.ReadOnly = true;

            //permite que o texto maior que célula não seja truncado
            gdv.DefaultCellStyle.WrapMode = DataGridViewTriState.True;
            //alinha o cabeçalho do datagrid
            gdv.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
            //alinha conteudo do datagrid centralizado
            gdv.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
            //alinha apenas a coluna descricao a esquerda
            gdv.Columns[1].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleLeft;
            //Ordenação de exibição
            gdv.Sort(gdv.Columns[0], ListSortDirection.Ascending);


        }


        #endregion

        #endregion


        #region Botões


        private void btnGerar_Click(object sender, EventArgs e)
        {
            ConsultaTab();
        }



        private void btnExportarExcel_Click(object sender, EventArgs e)
        {


        }

        #endregion




        #region Metodos

        private void ConsultaTab()
        {
            switch (cboTipoConsulta.Text)
            {
                case "Apenas Consulta":

                    dtTab = insBDOlosPE.GetTab(dtpDataInicial.Value, dtpDataFinal.Value);
                    dgPrevia.DataSource = dtTab;
                    formataGridView();
                    break;

                case "Inclusão No Banco":
                    
                    //Convertendo data Inicial
                    string data = Convert.ToString(dtpDataInicial.Value);
                    data = data.Remove(10);
                    data = data + " 00:00:00";                    
                    DateTime dataInicial = Convert.ToDateTime(data);                    
                    
                    //Convertendo data Final
                    data = Convert.ToString(dtpDataFinal.Value);
                    data = data.Remove(10);
                    data = data + " 23:59:59";                    
                    DateTime dataFinal = Convert.ToDateTime(data);                    
                    
                    //Consulta ao BD Olos
                    dtTab = insBDOlosPE.GetTab(dataInicial, dataFinal);
                    
                    //Associando datasource ao datagrid
                    dgPrevia.DataSource = dtTab;
                    formataGridView();

                    DtpFormataAddBanco();
                    break;


                default:
                    break;
            }


        }


        #endregion


    }
}
